package dao.mededelingen;

import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JTable;

import dao.DataConnection;
import mededelingen.model.Mededelingen;
import mededelingen.model.MededelingenListModel;
import mededelingen.model.Mededelingenlijst;

public class DataLayerMededelingen extends DataConnection {

	//mededelingen toevoegen in database
	public void insertMededeling(Mededelingen m){
		String sql = "INSERT INTO" +
				" mededeling (" +
				"`begindatum`, " +
				"`einddatum`, " +
				"`naam`, " +
				"`beschrijving`) " +
				"VALUES('" 
				+ m.getBeginDatum()
				+ "','" 
				+ m.getEindDatum() 
				+ "','" 
				+ m.getNaam() 
				+ "','" 
				+ m.getBeschrijving() 
				+"' )";  
		try{
			stmt = conn.createStatement();
			stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);

			//haal auto-increment id uit database
			rs = stmt.getGeneratedKeys();
			if(rs.next()){
				int id = rs.getInt(1);
				m.setMededeling_id(id);
			}
			stmt.close();
		}
		catch(SQLException sqle){
			sqle.printStackTrace();
		}	
	}

	//mededelingen laden uit database
	public void loadMededeling(){
		String sql = "SELECT * FROM mededeling";
		try{
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql); 
			Mededelingen m;

			while(rs.next()){
				m = new Mededelingen();
				m.setMededeling_id(rs.getInt("mededeling_id"));
				m.setBeginDatum(rs.getString("begindatum"));
				m.setEindDatum(rs.getString("einddatum"));
				m.setNaam(rs.getString("naam"));
				m.setBeschrijving(rs.getString("beschrijving"));
				//voeg mededelingen toe aan arraylist
				Mededelingenlijst.getInstance().addMededeling(m);	
			}	
		}
		catch(SQLException sqle){
			sqle.printStackTrace();
		}
	}

	//mededelingen verwijderen uit database
	public void deleteMededeling(String row){
		//verwijder geselcteerde row
		String sql = "DELETE FROM mededeling WHERE mededeling_id ='"+ row +"'";
		try{
			stmt = conn.createStatement();
			stmt.executeUpdate(sql); 
		}
		catch(SQLException sqle){
			sqle.printStackTrace();
		}
	}

	//mededelingen bijwerken in database
	public void updateMededeling(Mededelingen m){
		//haal geselecteerde id van row op
		int id = m.getMededeling_id();
		
		String naam = m.getNaam();
		String beschrijving = m.getBeschrijving();

		String sql = "UPDATE mededeling SET ";
		sql +=	 "naam='" + naam
				+ "', beschrijving='" + beschrijving
				+ "' WHERE mededeling_id=" + id + "";

		try{
			stmt = conn.createStatement();
			stmt.executeUpdate(sql); 
			stmt.close();
		}
		catch(SQLException sqle){
			sqle.printStackTrace();
		}
	}

}